package com.caiyouxi.pay.model;

import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.Date;

/**
 * 支付日志信息
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PaymentLogBean
{
    private Integer id;
    private String gateway_provider;////第三方支付网关。参见 payment_gateway：系统支付方式-OK 的 provider 字段。
    private String gateway_trade_no;//第三方支付网关的交易流水号。
    private String user_id;//支付或接收退款的用户编号。 参见 user_profile：用户基本信息表-OK
    private String gateway_buyer_id;//在第三方支付网关的用户编号（即付款账号或买家账号）。对于支付宝，则为 buyer_id，对于微信则为 openid。
    private String payment_type;//支付类型：PAY：用户支付 REFUND：退款给用户
    /**
     * 请求或响应的方向：
     SEND：发送支付请求
     RECEIVE：接收到支付网关发送过来的结果通知

     同一个充值订单可能会收到支付网关的多条通知记录，都需要记录下来。
     */
    private String direction;
    private String order_id;//充值订单编号。参见 finance_charge：充值记录表
    private Integer amount;//需要支付的金额（或退款的金额），精确到分，如果是1元，那么该字段值为100
    private String goods_id;//商品编号
    private String goods_title;//商品标题
    private String goods_detail;//商品介绍
    /**
     * 请求的发送状态或响应的处理状态。简单来讲，这里记录的是代码对请求或响应的处理是否成功，比如请求发送是否成功、通知过来的数据签名校验是否成功等。和业务无关
     SUCCESS：正常发送或响应成功处理
     FAILED：发送失败或响应处理失败（具体的需要查看 error_code 和 error_msg 字段）
     */
    private String status;
    /**
     * 业务处理状态。一般只有status = SUCCESS 时，trade_status 才有用。
     SUCCESS：正常发送或响应成功处理
     FAILED：发送失败或通知处理失败（具体的需要查看 error_code 和 error_msg 字段）
     */
    private String trade_status;
    private String raw;//发出的请求或接受到的通知原始的完整的HTTP报文，没有经过任何处理的。
    private String result_raw;//发出请求后，对方http 响应的原始数据。
    private String url;//请求或响应的 url
    private String ip;///如果 direction 为 SEND，则表示我们发送请求的服务器对外的 IP 地址；如果 direction 为 RECEIVE，则表示接收到的请求方的服务器 IP 地址。
    private String error_code;//错误代码
    private String error_msg;//错误消息

    private Date create_time;

    public Date getCreate_time() {
        return create_time;
    }

    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getGateway_provider() {
        return gateway_provider;
    }

    public void setGateway_provider(String gateway_provider) {
        this.gateway_provider = gateway_provider;
    }

    public String getGateway_trade_no() {
        return gateway_trade_no;
    }

    public void setGateway_trade_no(String gateway_trade_no) {
        this.gateway_trade_no = gateway_trade_no;
    }

    public String getUser_id() {
        return user_id;
    }

    public void setUser_id(String user_id) {
        this.user_id = user_id;
    }

    public String getGateway_buyer_id() {
        return gateway_buyer_id;
    }

    public void setGateway_buyer_id(String gateway_buyer_id) {
        this.gateway_buyer_id = gateway_buyer_id;
    }

    public String getPayment_type() {
        return payment_type;
    }

    public void setPayment_type(String payment_type) {
        this.payment_type = payment_type;
    }

    public String getDirection() {
        return direction;
    }

    public void setDirection(String direction) {
        this.direction = direction;
    }

    public String getOrder_id() {
        return order_id;
    }

    public void setOrder_id(String order_id) {
        this.order_id = order_id;
    }

    public Integer getAmount() {
        return amount;
    }

    public void setAmount(Integer amount) {
        this.amount = amount;
    }

    public String getGoods_id() {
        return goods_id;
    }

    public void setGoods_id(String goods_id) {
        this.goods_id = goods_id;
    }

    public String getGoods_title() {
        return goods_title;
    }

    public void setGoods_title(String goods_title) {
        this.goods_title = goods_title;
    }

    public String getGoods_detail() {
        return goods_detail;
    }

    public void setGoods_detail(String goods_detail) {
        this.goods_detail = goods_detail;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getTrade_status() {
        return trade_status;
    }

    public void setTrade_status(String trade_status) {
        this.trade_status = trade_status;
    }

    public String getRaw() {
        return raw;
    }

    public void setRaw(String raw) {
        this.raw = raw;
    }

    public String getResult_raw() {
        return result_raw;
    }

    public void setResult_raw(String result_raw) {
        this.result_raw = result_raw;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public String getError_code() {
        return error_code;
    }

    public void setError_code(String error_code) {
        this.error_code = error_code;
    }

    public String getError_msg() {
        return error_msg;
    }

    public void setError_msg(String error_msg) {
        this.error_msg = error_msg;
    }
}
